﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sinacor.Process.Bovespa.CalculoFinanceiro.Server.Communication.Translator.DataContractToProcessEntity
{
    public class FinanceiroPendente
    {
        public List<ProcessEntity.FinanceiroPendente> ToFinanceiroPendente(List<Bovespa.ResumoFinanceiro.FinanceiroPendente.FinanceiroPendenteResponse> from)
        {
            List<ProcessEntity.FinanceiroPendente> to = null;

            if (from != null)
            {
                to = new List<ProcessEntity.FinanceiroPendente>();

                foreach(Bovespa.ResumoFinanceiro.FinanceiroPendente.FinanceiroPendenteResponse item in from)
                {
                    to.Add(ToFinanceiroPendente(item));
                }
            }

            return to;
        }

        public ProcessEntity.FinanceiroPendente ToFinanceiroPendente(Bovespa.ResumoFinanceiro.FinanceiroPendente.FinanceiroPendenteResponse from)
        {
            ProcessEntity.FinanceiroPendente to = null;

            if (from != null)
            {
                to = new ProcessEntity.FinanceiroPendente();

                to.ApelidoBroker = from.ApelidoBroker;
                to.ApelidoCliente = from.ApelidoCliente;
                to.BolsaFaturamento = from.BolsaFaturamento;
                to.CodigoBroker = from.CodigoBroker;
                to.CodigoCliente = from.CodigoCliente;
                to.DataLiquidacao = from.DataLiquidacao;
                to.DataPregao = from.DataPregao;
                to.DataUltimaAlocacao = from.DataUltimaAlocacao;
                to.DataUltimaAtualizacao = from.DataUltimaAtualizacao;

                switch (from.IndicadorBroker)
                {
                    case Bovespa.ResumoFinanceiro.FinanceiroPendente.TipoCliente.Cliente:
                        to.IndicadorBroker = ProcessEntity.Enum.TipoCliente.Cliente;
                        break;
                    case Bovespa.ResumoFinanceiro.FinanceiroPendente.TipoCliente.Broker:
                        to.IndicadorBroker = ProcessEntity.Enum.TipoCliente.Broker;
                        break;
                    case Bovespa.ResumoFinanceiro.FinanceiroPendente.TipoCliente.Financeiro:
                        to.IndicadorBroker = ProcessEntity.Enum.TipoCliente.Financeiro;
                        break;
                }

                to.LiquidacaoNota = from.LiquidacaoNota;
            }

            return to;
        }
    }
}
